/**
 * Copyright (c) 2013-2022, Alibaba Group Holding Limited;
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * </p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: TxnStream.proto

package com.aliyun.polardbx.binlog.protocol;

public interface TxnItemOrBuilder extends
    // @@protoc_insertion_point(interface_extends:com.aliyun.polardbx.binlog.protocol.TxnItem)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   **
   *1.traceId是分布式事务内，合并多个物理分片的事件时，进行排序的依据&lt;/br&gt;
   *2.为了便于统一处理，不管是单机事务还是分布式事务都要求传入，并且要保证同一事务在同一物理分片的traceID单调递增 &lt;/br&gt;
   *3.如果物理binlog中带有traceId标识，直接使用即可；如果物理binlog中不带有traceId标识，通过"时间戳+自增序列"手动生成 &lt;/br&gt;
   * </pre>
   *
   * <code>string traceId = 1;</code>
   * @return The traceId.
   */
  java.lang.String getTraceId();
  /**
   * <pre>
   **
   *1.traceId是分布式事务内，合并多个物理分片的事件时，进行排序的依据&lt;/br&gt;
   *2.为了便于统一处理，不管是单机事务还是分布式事务都要求传入，并且要保证同一事务在同一物理分片的traceID单调递增 &lt;/br&gt;
   *3.如果物理binlog中带有traceId标识，直接使用即可；如果物理binlog中不带有traceId标识，通过"时间戳+自增序列"手动生成 &lt;/br&gt;
   * </pre>
   *
   * <code>string traceId = 1;</code>
   * @return The bytes for traceId.
   */
  com.google.protobuf.ByteString
      getTraceIdBytes();

  /**
   * <pre>
   **
   *1.对应mysql的EventType
   * </pre>
   *
   * <code>int32 eventType = 2;</code>
   * @return The eventType.
   */
  int getEventType();

  /**
   * <pre>
   **
   *1.二进制数据，对应binlog event
   * </pre>
   *
   * <code>bytes payload = 3;</code>
   * @return The payload.
   */
  com.google.protobuf.ByteString getPayload();

  /**
   * <pre>
   **
   *1.保存RowsQuery信息
   * </pre>
   *
   * <code>string rowsQuery = 4;</code>
   * @return The rowsQuery.
   */
  java.lang.String getRowsQuery();
  /**
   * <pre>
   **
   *1.保存RowsQuery信息
   * </pre>
   *
   * <code>string rowsQuery = 4;</code>
   * @return The bytes for rowsQuery.
   */
  com.google.protobuf.ByteString
      getRowsQueryBytes();

  /**
   * <pre>
   **
   *对应的库名
   * </pre>
   *
   * <code>string schema = 5;</code>
   * @return The schema.
   */
  java.lang.String getSchema();
  /**
   * <pre>
   **
   *对应的库名
   * </pre>
   *
   * <code>string schema = 5;</code>
   * @return The bytes for schema.
   */
  com.google.protobuf.ByteString
      getSchemaBytes();

  /**
   * <pre>
   **
   *对应的表名
   * </pre>
   *
   * <code>string table = 6;</code>
   * @return The table.
   */
  java.lang.String getTable();
  /**
   * <pre>
   **
   *对应的表名
   * </pre>
   *
   * <code>string table = 6;</code>
   * @return The bytes for table.
   */
  com.google.protobuf.ByteString
      getTableBytes();

  /**
   * <pre>
   **
   *参与dispatcher 分发的hashKey
   * </pre>
   *
   * <code>int32 hashKey = 7;</code>
   * @return The hashKey.
   */
  int getHashKey();

  /**
   * <pre>
   **
   *主键信息
   * </pre>
   *
   * <code>repeated bytes primaryKey = 8;</code>
   * @return A list containing the primaryKey.
   */
  java.util.List<com.google.protobuf.ByteString> getPrimaryKeyList();
  /**
   * <pre>
   **
   *主键信息
   * </pre>
   *
   * <code>repeated bytes primaryKey = 8;</code>
   * @return The count of primaryKey.
   */
  int getPrimaryKeyCount();
  /**
   * <pre>
   **
   *主键信息
   * </pre>
   *
   * <code>repeated bytes primaryKey = 8;</code>
   * @param index The index of the element to return.
   * @return The primaryKey at the given index.
   */
  com.google.protobuf.ByteString getPrimaryKey(int index);
}
